import {CHANGE_INPUT_VALUE,ADD_DATA_ITEM,DELETE_ITEM} from './actionType'

const defaultState = {
    inputValue: '',
    data: []
}
// reducer 可以接收state,但是不能修改state
// 纯函数： 给固定的输入，就一定有固定的输出，而且不会有任何副作用
export default (state = defaultState, action) => {
    console.log(state, action)
    if (action.type === CHANGE_INPUT_VALUE) {
        // 深拷贝
        const newState = JSON.parse(JSON.stringify(state))
        newState.inputValue = action.value
        // 对接收的参数做了修改，就会有副作用
        // state.inputValue=action.value
        // store接收到了newState
        return newState
    }
    if(action.type===ADD_DATA_ITEM){
        const newState=JSON.parse(JSON.stringify(state))
        newState.data.push(newState.inputValue)
        newState.inputValue=''
        return newState
    }
    if(action.type===DELETE_ITEM){
        const newState=JSON.parse(JSON.stringify(state))
        newState.data.splice(action.index,1)
        return newState
    }
    return state;
};